<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="FoodserviceTransactionType">
    <xs:annotation>
      <xs:documentation>
								This object communicates food service transaction information. This is the key object that will be present for every
								food service transaction.
							</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>GUID that identifies the school/site of account transaction</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Program" minOccurs="0" type="sif:ProgramType" />
      <xs:element name="TransactionDate" minOccurs="0" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date of transaction</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TransactionTime" minOccurs="0" type="xs:time">
        <xs:annotation>
          <xs:documentation>Time of transaction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TransactionTypes" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TransactionType" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>Type of transaction</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Purchase" />
                  <xs:enumeration value="Prepayment" />
                  <xs:enumeration value="Refund" />
                  <xs:enumeration value="Repayment" />
                  <xs:enumeration value="Adjustment" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Customer" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MealStatus" minOccurs="0" nillable="true" type="sif:MealStatusType" />
            <xs:element name="EarnedStatus" minOccurs="0" nillable="true" type="sif:EarnedStatusType" />
          </xs:sequence>
          <xs:attribute name="SIF_RefId" use="required" type="sif:IdRefType">
            <xs:annotation>
              <xs:documentation>The GUID of the customer doing the transaction. </xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="SIF_RefObject" use="required">
            <xs:annotation>
              <xs:documentation>SIF customer type.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="StudentPersonal" />
                <xs:enumeration value="StaffPersonal" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="Amount" minOccurs="0" type="sif:FSAmountType" />
      <xs:element name="Tax" minOccurs="0" nillable="true" type="sif:MonetaryAmountType">
        <xs:annotation>
          <xs:documentation>Amount of tax.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Description of the Transaction</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Voided" minOccurs="0">
        <xs:annotation>
          <xs:documentation>This flag tells us if the transaction is voided.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>GUID that identifies food service transaction</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="FoodserviceTransaction" type="sif:FoodserviceTransactionType" />

</xs:schema>